package com.sws.capture.domain;

import java.time.LocalDateTime;


import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sws.common.annotation.Excel;
import com.sws.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 人脸抓拍记录对象 cap_record
 *
 * @author ruoyi
 * @date 2025-06-11
 */
@ApiModel(description = "人脸抓拍记录存储对象")
@JsonIgnoreProperties(ignoreUnknown = true)
public class CapRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 物理主键 */
    @ApiModelProperty(value = "物理主键", example = "1")
    private Integer id;

    /** 事件类型: 1：移动侦测报警 2：智能分析报警:区域入侵或绊线检测报警 3：智能分析报警:视频遮挡报警 4：智能分析报警:婴儿啼哭报警 5：智能分析报警:人员聚集检测报警 6：智能分析报警:人员徘徊检测报警 7：智能分析报警:快速移动报警 8：火焰报警 9：智能分析报警:音量陡升报警 10：智能分析报警:环境噪声陡降报警 11：人形检测实时抓拍 12：关注人员(黑白名单)检测 13：离岗检测报警 14：体温检测报警 */
    @Excel(name = "事件类型: 1：移动侦测报警 2：智能分析报警:区域入侵或绊线检测报警 3：智能分析报警:视频遮挡报警 4：智能分析报警:婴儿啼哭报警 5：智能分析报警:人员聚集检测报警 6：智能分析报警:人员徘徊检测报警 7：智能分析报警:快速移动报警 8：火焰报警 9：智能分析报警:音量陡升报警 10：智能分析报警:环境噪声陡降报警 11：人形检测实时抓拍 12：关注人员(黑白名单)检测 13：离岗检测报警 14：体温检测报警")
    @ApiModelProperty(value = "事件类型", example = "1")
    private Integer type;

    /** 抓拍时间（精确到毫秒）,如："time": "2025-06-06 10:05:49.49000" */
    @Excel(name = "抓拍时间", readConverterExp = "精=确到毫秒")
    @ApiModelProperty(value = "抓拍时间", example = "2025-06-06 10:05:49.49000")
    @com.fasterxml.jackson.annotation.JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime time;

    /** 设备序列号 */
    @Excel(name = "设备序列号")
    @ApiModelProperty(value = "设备序列号", example = "SN123456")
    private String sn;

    /** 姓名 */
    @Excel(name = "姓名")
    @ApiModelProperty(value = "姓名", example = "张三")
    private String name;

    /** 年龄 */
    @Excel(name = "年龄")
    @ApiModelProperty(value = "年龄", example = "25")
    private Integer age;

    /** 性别（1:男；2:女） */
    @Excel(name = "性别", readConverterExp = "1=:男；2:女")
    @ApiModelProperty(value = "性别", example = "1")
    private Integer gender;

    /** IC卡号 */
    @Excel(name = "IC卡号")
    @ApiModelProperty(value = "IC卡号", example = "IC123456")
    private String icCard;

    /** 工号 */
    @Excel(name = "工号")
    @ApiModelProperty(value = "工号", example = "G123456")
    private String workId;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty(value = "手机号", example = "13800138000")
    private String phone;

    /** 部门名称 */
    @Excel(name = "部门名称")
    @ApiModelProperty(value = "部门名称", example = "技术部")
    private String department;

    /** 其他信息 */
    @Excel(name = "其他信息")
    @ApiModelProperty(value = "其他信息", example = "无")
    private String otherInfo;

    /** 人员类别（1:白名单；2:黑名单；3:VIP；4:访客） */
    @Excel(name = "人员类别", readConverterExp = "1:白名单；2:黑名单；3:VIP；4:访客")
    @ApiModelProperty(value = "人员类别", example = "1")
    private Integer category;

    /** 识别相似度 */
    @Excel(name = "识别相似度")
    @ApiModelProperty(value = "识别相似度", example = "95")
    private Integer score;

    /** 是否戴头盔，0：否，1：是 */
    @Excel(name = "是否戴头盔，0：否，1：是")
    @ApiModelProperty(value = "是否戴头盔", example = "0")
    private Integer helmet;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @ApiModelProperty(value = "吸烟状态", example = "0")
    private Integer smoke;

    /** 是否手持物品，0：否，1：是 */
    @Excel(name = "是否手持物品，0：否，1：是")
    @ApiModelProperty(value = "是否手持物品", example = "0")
    private Integer handed;

    /** 设备ID */
    @Excel(name = "设备ID")
    @ApiModelProperty(value = "设备ID", example = "D123456")
    private String deviceId;

    /** 人员ID */
    @Excel(name = "人员ID")
    @ApiModelProperty(value = "人员ID", example = "PID123456")
    private String pid;

    /** 身份证号 */
    @Excel(name = "身份证号")
    @ApiModelProperty(value = "身份证号", example = "123456789012345678")
    private String idCard;

    /** 表情（4:中性） */
    @Excel(name = "表情", readConverterExp = "4=:中性")
    @ApiModelProperty(value = "表情", example = "4")
    private Integer express;

    /** 人脸图路径（如：sdcard/face_record/06/05/xxx.jpg） */
    @Excel(name = "人脸图路径", readConverterExp = "如=：sdcard/face_record/06/05/xxx.jpg")
    @ApiModelProperty(value = "人脸图路径", example = "sdcard/face_record/06/05/xxx.jpg")
    private String jpegUrlFace;

    /** 全身图路径 */
    @Excel(name = "全身图路径")
    @ApiModelProperty(value = "全身图路径", example = "sdcard/body_record/06/05/xxx.jpg")
    private String jpegUrlBody;

    /** 场景图路径（如：sdcard/face_record/06/05/xxx_bg.jpg） */
    @Excel(name = "场景图路径", readConverterExp = "如=：sdcard/face_record/06/05/xxx_bg.jpg")
    @ApiModelProperty(value = "场景图路径", example = "sdcard/face_record/06/05/xxx_bg.jpg")
    private String jpegUrlFrame;

    /** 注册图路径（如：data/facelib/123456.jpg） */
    @Excel(name = "注册图路径", readConverterExp = "如=：data/facelib/123456.jpg")
    @ApiModelProperty(value = "注册图路径", example = "data/facelib/123456.jpg")
    private String jpegUrlRcg;

    /** 抓拍位置 */
    @Excel(name = "抓拍位置")
    @ApiModelProperty(value = "抓拍位置", example = "教学楼A区")
    private String location;

    /** 删除标志(0存在，1删除) */
    @ApiModelProperty(value = "删除标志", example = "0")
    private Integer delFlag;

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId()
    {
        return id;
    }

    public void setType(Integer type)
    {
        this.type = type;
    }

    public Integer getType()
    {
        return type;
    }

    public void setTime(LocalDateTime time)
    {
        this.time = time;
    }

    public LocalDateTime getTime()
    {
        return time;
    }

    public void setSn(String sn)
    {
        this.sn = sn;
    }

    public String getSn()
    {
        return sn;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }

    public void setAge(Integer age)
    {
        this.age = age;
    }

    public Integer getAge()
    {
        return age;
    }

    public void setGender(Integer gender)
    {
        this.gender = gender;
    }

    public Integer getGender()
    {
        return gender;
    }

    public void setIcCard(String icCard)
    {
        this.icCard = icCard;
    }

    public String getIcCard()
    {
        return icCard;
    }

    public void setWorkId(String workId)
    {
        this.workId = workId;
    }

    public String getWorkId()
    {
        return workId;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    public void setDepartment(String department)
    {
        this.department = department;
    }

    public String getDepartment()
    {
        return department;
    }

    public void setOtherInfo(String otherInfo)
    {
        this.otherInfo = otherInfo;
    }

    public String getOtherInfo()
    {
        return otherInfo;
    }

    public void setCategory(Integer category)
    {
        this.category = category;
    }

    public Integer getCategory()
    {
        return category;
    }

    public void setScore(Integer score)
    {
        this.score = score;
    }

    public Integer getScore()
    {
        return score;
    }

    public void setSmoke(Integer smoke)
    {
        this.smoke = smoke;
    }

    public Integer getSmoke()
    {
        return smoke;
    }

    public void setHanded(Integer handed)
    {
        this.handed = handed;
    }

    public Integer getHanded()
    {
        return handed;
    }

    public void setDeviceId(String deviceId)
    {
        this.deviceId = deviceId;
    }

    public String getDeviceId()
    {
        return deviceId;
    }

    public void setPid(String pid)
    {
        this.pid = pid;
    }

    public Integer getHelmet() {
        return helmet;
    }

    public void setHelmet(Integer helmet) {
        this.helmet = helmet;
    }

    public String getPid()
    {
        return pid;
    }

    public void setIdCard(String idCard)
    {
        this.idCard = idCard;
    }

    public String getIdCard()
    {
        return idCard;
    }

    public void setExpress(Integer express)
    {
        this.express = express;
    }

    public Integer getExpress()
    {
        return express;
    }

    public void setJpegUrlFace(String jpegUrlFace)
    {
        this.jpegUrlFace = jpegUrlFace;
    }

    public String getJpegUrlFace()
    {
        return jpegUrlFace;
    }

    public void setJpegUrlBody(String jpegUrlBody)
    {
        this.jpegUrlBody = jpegUrlBody;
    }

    public String getJpegUrlBody()
    {
        return jpegUrlBody;
    }

    public void setJpegUrlFrame(String jpegUrlFrame)
    {
        this.jpegUrlFrame = jpegUrlFrame;
    }

    public String getJpegUrlFrame()
    {
        return jpegUrlFrame;
    }

    public void setJpegUrlRcg(String jpegUrlRcg)
    {
        this.jpegUrlRcg = jpegUrlRcg;
    }

    public String getJpegUrlRcg()
    {
        return jpegUrlRcg;
    }

    public void setLocation(String location)
    {
        this.location = location;
    }

    public String getLocation()
    {
        return location;
    }

    public void setDelFlag(Integer delFlag)
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("type", getType())
                .append("time", getTime())
                .append("sn", getSn())
                .append("name", getName())
                .append("age", getAge())
                .append("gender", getGender())
                .append("icCard", getIcCard())
                .append("workId", getWorkId())
                .append("phone", getPhone())
                .append("department", getDepartment())
                .append("otherInfo", getOtherInfo())
                .append("category", getCategory())
                .append("score", getScore())
                .append("helmet", getHelmet())
                .append("smoke", getSmoke())
                .append("handed", getHanded())
                .append("deviceId", getDeviceId())
                .append("pid", getPid())
                .append("idCard", getIdCard())
                .append("express", getExpress())
                .append("jpegUrlFace", getJpegUrlFace())
                .append("jpegUrlBody", getJpegUrlBody())
                .append("jpegUrlFrame", getJpegUrlFrame())
                .append("jpegUrlRcg", getJpegUrlRcg())
                .append("location", getLocation())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
